From 1c59387983902eb2c365b0d966d02915940eb9d8 Mon Sep 17 00:00:00 2001 From: Nisarg Thakkar Date: Sat, 20 May 2017 22:35:14 +0530 Subject: [PATCH] Adding target support to cargo package and cargo publish --- src/bin/package.rs | 3 +++ src/bin/publish.rs | 3 +++ src/cargo/ops/cargo_package.rs | 3 ++- src/cargo/ops/registry.rs | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/bin/package.rs b/src/bin/package.rs index 8b88ba882..06fc589bd 100644 --- a/src/bin/package.rs +++ b/src/bin/package.rs @@ -8,6 +8,7 @@ pub struct Options { flag_verbose: u32, flag_quiet: Option, flag_color: Option, + flag_target: Option, flag_manifest_path: Option, flag_no_verify: bool, flag_no_metadata: bool, @@ -32,6 +33,7 @@ Options: --no-verify Don't verify the contents by building them --no-metadata Ignore warnings about a lack of human-usable metadata --allow-dirty Allow dirty working directories to be packaged + --target TRIPLE Build for the target triple --manifest-path PATH Path to the manifest to compile -j N, --jobs N Number of parallel jobs, defaults to # of CPUs -v, --verbose ... Use verbose output (-vv very verbose/build.rs output) @@ -57,6 +59,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult { list: options.flag_list, check_metadata: !options.flag_no_metadata, allow_dirty: options.flag_allow_dirty, + target: options.flag_target.as_ref().map(|t| &t[..]), jobs: options.flag_jobs, })?; Ok(()) diff --git a/src/bin/publish.rs b/src/bin/publish.rs index d77957109..3299aacf1 100644 --- a/src/bin/publish.rs +++ b/src/bin/publish.rs @@ -8,6 +8,7 @@ pub struct Options { flag_index: Option, flag_host: Option, // TODO: Deprecated, remove flag_token: Option, + flag_target: Option, flag_manifest_path: Option, flag_verbose: u32, flag_quiet: Option, @@ -35,6 +36,7 @@ Options: --token TOKEN Token to use when uploading --no-verify Don't verify package tarball before publish --allow-dirty Allow publishing with a dirty source directory + --target TRIPLE Build for the target triple --manifest-path PATH Path to the manifest of the package to publish -j N, --jobs N Number of parallel jobs, defaults to # of CPUs --dry-run Perform all checks without uploading @@ -94,6 +96,7 @@ about this warning."; else { config.shell().warn(&msg)?; host }, // TODO: Deprecated, remove verify: !no_verify, allow_dirty: allow_dirty, + target: options.flag_target.as_ref().map(|t| &t[..]), jobs: jobs, dry_run: dry_run, })?; diff --git a/src/cargo/ops/cargo_package.rs b/src/cargo/ops/cargo_package.rs index 72b083803..9050beece 100644 --- a/src/cargo/ops/cargo_package.rs +++ b/src/cargo/ops/cargo_package.rs @@ -22,6 +22,7 @@ pub struct PackageOpts<'cfg> { pub allow_dirty: bool, pub verify: bool, pub jobs: Option, + pub target: Option<&'cfg str>, } pub fn package(ws: &Workspace, @@ -298,7 +299,7 @@ fn run_verify(ws: &Workspace, tar: &File, opts: &PackageOpts) -> CargoResult<()> ops::compile_ws(&ws, None, &ops::CompileOptions { config: config, jobs: opts.jobs, - target: None, + target: opts.target, features: &[], no_default_features: false, all_features: false, diff --git a/src/cargo/ops/registry.rs b/src/cargo/ops/registry.rs index f7153c190..087007893 100644 --- a/src/cargo/ops/registry.rs +++ b/src/cargo/ops/registry.rs @@ -34,6 +34,7 @@ pub struct PublishOpts<'cfg> { pub verify: bool, pub allow_dirty: bool, pub jobs: Option, + pub target: Option<&'cfg str>, pub dry_run: bool, } @@ -61,6 +62,7 @@ pub fn publish(ws: &Workspace, opts: &PublishOpts) -> CargoResult<()> { list: false, check_metadata: true, allow_dirty: opts.allow_dirty, + target: opts.target, jobs: opts.jobs, })?.unwrap(); -- 2.30.2